﻿function setearParrafoAdvertencia(mensaje) {
    var parrafoAdvertencia = $("#parrafoAdvertencia");
    parrafoAdvertencia.html("&nbsp;");
    parrafoAdvertencia.text(mensaje);

}


function limpiarAdvertenciaAdvertencia() {
    var parrafoAdvertencia = $("#parrafoAdvertencia");
    parrafoAdvertencia.html("&nbsp;");
    parrafoAdvertencia.text(" ");
}



//  limpia los campos del formulario
function limpiarCampos() {
    var nombre = $("#cajaDeTextoEmpresa");
    var codigo = $("#cajaDeTextoCodigo");
    nombre.val("");
    codigo.val("");
}








//  Clona la fila oculta de la tabla y la coloca al final
//  de la tabla haciendola visible
function clonarFilaOculta() {
    var filaNueva = $("#tablaEmpresasExistentes tbody tr:eq(0)").clone();
    filaNueva.removeClass("celdasOcultas");
    filaNueva.addClass("celdasConCampos");
    filaNueva.appendTo("#tablaEmpresasExistentes tbody");
}

//  Llena las celdas con los nuevos valores
function llenarCeldasConNuevosValores(empresaDelControlador) {
    var celadaNombre = $("#tablaEmpresasExistentes tbody tr:last td:eq(0)");
    celadaNombre.text(empresaDelControlador.Nombre);

    var celadaCodigo = $("#tablaEmpresasExistentes tbody tr:last td:eq(1)");
    celadaCodigo.text(empresaDelControlador.Codigo);
}

//  Hace visible las celda donde se encuentran los iconos
function hacerVisibleCeldaConIconos() {
    var celdaIconos = $("#tablaEmpresasExistentes tbody tr:last td:last");
    celdaIconos.removeAttr("hidden");
}

//  Genera link de cada icono con la respectiva id de la empresa asociada
function generarLinkParaCadaIcono(empresaDelControlador) {
    var url = urls.editar + "/" + empresaDelControlador.id;
    var actionEditar = $("#tablaEmpresasExistentes tbody tr:last td:eq(2) .linkEditar");
    actionEditar.attr("href", url);


    url = urls.detalles + "/" + empresaDelControlador.id;
    var actionDetalles = $("#tablaEmpresasExistentes tbody tr:last td:eq(2) .linkDetalles");
    actionDetalles.attr("href", url);

    //url = urls.eliminar + "/" + empresaDelControlador.id;
    var funcionParaEliminarEmpresa = "eliminarEmpresa(" + empresaDelControlador.id + ", this)";
    var actionEliminar = $("#tablaEmpresasExistentes tbody tr:last td:eq(2) .linkEliminar");
    actionEliminar.attr("onclick", funcionParaEliminarEmpresa);


    url = urls.admmicros + "/" + empresaDelControlador.id;
    var actionAdmMicros = $("#tablaEmpresasExistentes tbody tr:last td:eq(2) .linkAdmMicros");
    actionAdmMicros.attr("href", url);
}













function mostrarNuevaEmpresaEntabla(Empresa) {
    //  Clono la fila oculta a una fila nueva
    clonarFilaOculta();

    //  lleno las celdas con los valores
    llenarCeldasConNuevosValores(Empresa);

    //  Quito el hidden para que los iconos sean visibles
    hacerVisibleCeldaConIconos();

    //  Genero los links para cada icono
    generarLinkParaCadaIcono(Empresa);

    //  Setear advertencia de empresa guardada correctamente
    setearParrafoAdvertencia("Se guardo la empresa correctamente");

    limpiarCampos();
}








function procesarPromesaDarAltaEmpresa(respuestaDelServidor) {
    setearParrafoAdvertencia(respuestaDelServidor.Mensaje);
    if (respuestaDelServidor.CantidadDeEmpresas > 0) {
        mostrarNuevaEmpresaEntabla(respuestaDelServidor.UnicaEmpresa);
   }
}




function armarRequest01() {

    var nombreEmpresa = $("#nombre").val();
    var codigoEmpresa = $("#codigo").val();
    var jobject = { request: { Empresa: { id: 0, Nombre: nombreEmpresa, Codigo: codigoEmpresa }, Destino: null, Micro: null } }

    return JSON.stringify(jobject);


    
}





function lanzarPromesaDarAltaEmpresa() {
 
    var request = armarRequest01();
    var urlx = urls.darAltaEmpresa;

    $.ajax({
        url: urlx,
        cache: false,
        type: "POST",
        contentType: 'application/json; charset=utf-8',
        data: request,
        success: procesarPromesaDarAltaEmpresa
    });
}







//  Evento al enviar formulario
function darAltaNuevaEmpresa() {

    setearParrafoAdvertencia("");
    lanzarPromesaDarAltaEmpresa();
    return false;
}



//  Evento al enviar formulario
$("#formularioAltaEmpresa").submit(darAltaNuevaEmpresa);



function eliminarFilasMarcadasComoParaBorrar() {
    var filasAEliminar = $(".filaAEliminar");
    filasAEliminar.remove();
}


function quitarMarcasDeBorradoEnFilas() {
    //  NO FUNCA

    //var filasMarcadasParaEliminar = $(".filaAEliminar");
    //filasMarcadasParaEliminar.removeAttr("class");
}



function procesarPromesaEliminarEmpresa(respuestaDelServidor) {
    setearParrafoAdvertencia(respuestaDelServidor.Mensaje);

    //  Si se elimino la empresa del servidor entonces debo eliminarla de la tabla
    if (respuestaDelServidor.CantidadDeEmpresas > 0) {
        eliminarFilasMarcadasComoParaBorrar();
    }
    //  Si no se elimino la empresa de la Bd debo quitar las marcas
    else {
        quitarMarcasDeBorradoEnFilas();
    }
}






function armarRequest02(empresaId) {

    var empresaId = empresaId;
    var jobject = { request: { Empresa: { id: empresaId, Nombre: "", Codigo: "" }, Destino: null, Micro: null } }
    return JSON.stringify(jobject);
}





function lanzarPromesaEliminarEmpresa(empresaId) {


    var request = armarRequest02(empresaId);
    var urlx = urls.eliminarEmpresa;

    $.ajax({
        url: urlx,
        cache: false,
        type: "POST",
        contentType: 'application/json; charset=utf-8',
        data: request,
        success: procesarPromesaEliminarEmpresa
    });
}




//  Evento al presionar boton eliminar
function eliminarEmpresa(empresaId, celdaActual) {
    var $this = $(celdaActual);
    var parent = $this.parent().parent();
    parent.attr("class", "filaAEliminar");
    lanzarPromesaEliminarEmpresa(empresaId);
}